题意
让你找出某一段区间内最大的频数。
思路
感觉这个题应用的还是很奇妙。之前做一维RMQ问题,都是直接求一段区间内的最大值最小值,现在这个让你求一个区间的频数,就感觉无从下手了,其实我们可以用sum[i]数组存储从他前面的数字到他的连续数字的最大频数。那么问题就转换了求某段区间内最大的sum[]值,但我们需要特殊处理一下可能从左边界的左边一直到左边界的右边都是连续的相同的值的情况。还有一个坑点就是代码中的t++之后,可能t最终会大于r,这个地方好坑啊。
1 |
|
云腾致雨,露结为霜
让你找出某一段区间内最大的频数。
感觉这个题应用的还是很奇妙。之前做一维RMQ问题,都是直接求一段区间内的最大值最小值,现在这个让你求一个区间的频数,就感觉无从下手了,其实我们可以用sum[i]数组存储从他前面的数字到他的连续数字的最大频数。那么问题就转换了求某段区间内最大的sum[]值,但我们需要特殊处理一下可能从左边界的左边一直到左边界的右边都是连续的相同的值的情况。还有一个坑点就是代码中的t++之后,可能t最终会大于r,这个地方好坑啊。
1 | #include <iostream> |